package com.example.micro_property_springboot.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 资产信息实体
 */
@Data
@TableName("asset_info")
public class AssetInfo {
    /**
     * 资产信息ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    @NotNull(message = "资产信息ID不能为空")
    private Long id;
    /**
     * 资产编码
     */
     @TableField(value = "asset_code")
     @NotNull(message = "资产编码不能为空")
    private String assetCode;
     /**
     * 资产名称
     */
    @TableField(value = "name")
     @NotNull(message = "资产名称不能为空")
    private String name;
     /**
     * 分类ID
     */
     @TableField(value = "category_id")
     @NotNull(message = "分类ID不能为空")
    private Long categoryId;
    /**
     * 资产规格
     */
     @TableField(value = "spec")
     @NotNull(message = "资产规格不能为空")
    private String spec;
    /**
     * 资产型号
     */
     @TableField(value = "model")
     @NotNull(message = "资产型号不能为空")
    private String model;
    /**
     * 采购日期
     */
     @TableField(value = "purchase_date")
     @NotNull(message = "采购日期不能为空")
    private LocalDateTime purchaseDate;
     /**
     * 资产单价
     */
     @TableField(value = "price")
     @NotNull(message = "资产单价不能为空")
    private BigDecimal price;
     /**
     * 资产总价值
     */
     @TableField(value = "total_price")
     @NotNull(message = "资产总价值不能为空")
    private BigDecimal totalPrice;
    /**
     * 供应商
     */
     @TableField(value = "supplier")
     @NotNull(message = "供应商不能为空")
    private String supplier;
    /**
     * 序列号
     */
     @TableField(value = "serial_num")
     @NotNull(message = "序列号不能为空")
    private String serialNum;
    /**
     * 存放地点
     */
     @TableField(value = "location")
     @NotNull(message = "存放地点不能为空")
    private String location;
    /**
     * 资产状态
     */
     @TableField(value = "status")
     @NotNull(message = "资产状态不能为空")
    private String status;
    /**
     * 当前使用人ID
     */
     @TableField(value = "user_id")
     @NotNull(message = "当前使用人ID不能为空")
    private Long userId;
    /**
     * 当前所属部门ID
     */
     @TableField(value = "dept_id")
     @NotNull(message = "当前所属部门ID不能为空")
    private Long deptId;
    /**
     * 创建时间
     */
     @TableField(value = "create_time")
     @NotNull(message = "创建时间不能为空")
    private LocalDateTime createTime;
     /**
     * 更新时间
     */
     @TableField(value = "update_time")
     @NotNull(message = "更新时间不能为空")
    private LocalDateTime updateTime;
}
